package com.yupi.yuapicommon.model.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.yupi.yuapicommon.model.dto.interfaceinfo.InvokeRequest;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
public class InterfaceInfoVo implements Serializable {

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 接口名
     */
    private String name;

    /**
     * 接口描述
     */
    private String description;

    /**
     * 请求类型
     */
    private String method;

    /**
     * 接口地址
     */
    private String url;

    // 请求头参数
    private List<InvokeRequest.Field> headerParams;

    // 请求体参数
    private List<InvokeRequest.Field> bodyParams;

    // 路径参数
    private List<InvokeRequest.Field> queryParams;

    /**
     * 响应头
     */
    private String responseHeader;


    /**
     * 消耗羊毛
     */
    private Long woolUsed;

    /////////限流相关信息
    /**
     * 速率
     */
    private Integer rate;

    /**
     * 时间间隔
     */
    private Integer rateInterval;

    /**
     * 时间单位
     */
    private Integer rateIntervalUnit;

    /**
     * 接口状态 (0- 关闭 1- 开启)
     */
    private Integer status;

    /**
     * 创建人
     */
    private Long userId;

    /**
     * 创建时间
     */
//    @CreatedDate
    private String createTime;

    /**
     * 更新时间
     */
//    @LastModifiedDate
    private String updateTime;

    /**
     * 是否展示
     */
    @ApiModelProperty(value = "是否展示")
    private Integer isShow;

    /**
     * 是否已经删除
     */
    @TableLogic
    private Integer isDelete;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

}
